Three-dimensional (3D) television has been a technology trend in recent years that intends to bring viewers sensational viewing experience. Various technologies have been developed to enable 3D viewing and the multi-view video is a key technology for 3DTV application among others. Since all cameras capture the same scene from different viewpoints, multi-view video data contains a large amount of inter-view redundancy. To exploit the inter-view redundancy, 3D coding tools such as view synthesized prediction (VSP) have been integrated to conventional 3D-HEVC (High Efficiency Video Coding) or 3D-AVC (Advanced Video Coding) codec.
The basic concept of the VSP in current 3D-HEVC Test Model (3DV-HTM) is illustrated in FIG. 1. VSP locates the reconstructed depth data of the reference view and uses it as virtual depth for the current PU. A technique named Neighboring Block Disparity Vector (NBDV) is used to locate the reconstructed depth data. In FIG. 1, a current prediction unit (PU) (112) in a dependent texture picture (110) is being coded. A disparity vector (130) of neighboring block (114) of the current block (112) is identified, where the disparity vector (130) points to a block (124) in the reference depth picture (120). The disparity vector (130′) is then used by the current PU (112) to location a corresponding reference depth block (122) in the reference depth picture (120). The reference depth block (122) is used as the virtual depth block for the current PU (112). Then prediction signals are generated with a disparity vector derived from the virtual depth for each 8×8 partition in the PU. The disparity values derived from the virtual depth block are used to locate corresponding reference samples in the reference texture picture. For example, three samples in the current texture block (112) are mapped to three samples in the reference texture picture (140) according to respective disparity values as indicated by three arrows (150a-c). The mapping process is named backward warping.
An adaptive block partitioning for VSP is disclosed by Shimizu, entitled Adaptive block partitioning for VSP in Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 5th Meeting: Vienna, AT, 27 Jul.-2 Aug. 2013, document: JCT3V-E0207). In JCT3V-E0207, each 8×8 block can be partitioned into two 8×4 partitions, or two 4×8 partitions independently as depicted in FIG. 2 for a 32×32 PU. A determination process is invoked for each 8×8 block of the PU to select either the 8×4 partition or the 4×8 partition according to
If (vdepth[TL]<vdepth[BR]?0:1)^ (vdepth[TR]<vdepth[BL]?0:1),                Use 4×8 partition;        
Else,
Use 8×4 partition,
where vdepth[TL], vdepth[BR], vdepth[TR] and vdepth[BL] corresponds to the depth samples at four corners (i.e., top-left, bottom-right, top-right and bottom-left respectively) of each 8×8 depth block. The depth value at top-left is compared to the depth sample at bottom-right (i.e. (vdepth[TL]<vdepth[BR]?0:1)). If vdepth[TL] is smaller than vdepth[BR], a “0” is assigned to the result and, otherwise, a “1” is assigned to the result. Similarly, the depth value at top-right is compared to the depth sample at bottom-left (i.e. (vdepth[TR]<vdepth[BL]?0:1)). If vdepth[TR] is smaller than vdepth[BL], a “0” is assigned to the result and, otherwise, a “1” is assigned to the result. If both results are not the same, 4×8 partition is used. Otherwise, 8×4 partition is used. As shown in the above test procedure, two comparisons, one Exclusive-Or and one test for final value to be “0” or “1” have to be performed.
The adaptive block partition by Shimizu presents two problems. First, the determination process may be invoked many times for a large PU. For example, if the PU size is 64×64, the determination process will be invoked 64 times. Second, the memory access method is irregular for a PU, which is unfriendly to paralleling process.
Accordingly, it is desirable to develop adaptive block partition that can adaptively select a block size to improve performance over a non-adaptive system while maintaining regular memory access.